package com.koicarp.university.graduate.service.service.graduateInfoManage;

import com.baomidou.mybatisplus.extension.service.IService;
import com.koicarp.university.graduate.service.entity.graduateInfoManage.GraduateInfo;
import com.koicarp.university.graduate.service.vo.graduateInfoManage.DeleteMoreDto;
import com.koicarp.university.graduate.service.vo.graduateInfoManage.GraduateInfoVo;
import com.koicarp.university.graduate.service.vo.graduateInfoManage.InfoStatusVo;
import com.koicarp.university.graduate.service.vo.wx.AuthIdentityVo;
import com.koicarp.university.graudate.common.utils.UniversityResponse;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;


/**
 * 【毕业生管理：毕业生信息表】(GraduateInfo)表服务接口
 *
 * @author liutao
 * @since 2020-07-30 17:23:19
 */
public interface IGraduateInfoService extends IService<GraduateInfo> {

    void downloadTemplate(HttpServletResponse http) throws Exception;

    UniversityResponse countDegreeGraduateSum();

    UniversityResponse getGraduateInfoWithPage(GraduateInfoVo graduateInfoVo);

    UniversityResponse uploadGraduateInfo(List<InfoStatusVo> list);

    UniversityResponse authIdentity(AuthIdentityVo vo);

    UniversityResponse getOneById(Integer id);
    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    GraduateInfo queryById(Integer id);

    /**
     * 查询多条数据
     *
     * @param offset 查询起始位置
     * @param limit  查询条数
     * @return 对象列表
     */
    List<GraduateInfo> queryAllByLimit(int offset, int limit);

    /**
     * 新增数据
     *
     * @param
     * @return 实例对象
     */
    UniversityResponse insert(InfoStatusVo infoStatusVo);

    /**
     * excel插入
     * @return
     */
    UniversityResponse insertExcel();
    /**
     * 修改数据
     *
     * @param
     * @return 实例对象
     */
    UniversityResponse update(InfoStatusVo infoStatusVo);
    UniversityResponse updateGraduate(InfoStatusVo infoStatusVo);
    /**
     * 通过主键删除数据
     *
     * @return 是否成功
     */
    UniversityResponse deleteByStudentId(InfoStatusVo infoStatusVo);
    
    UniversityResponse deleteListByStudentId(List<DeleteMoreDto> list);
}